package Reflect.classLoader;

/*
    分析Test02类的加载过程:
        1.加载Test02的class文件
        2.生成Test02的Class对象
        3.在连接准备阶段为静态变量num分配内存并默认初始化为0
        4.在初始化阶段执行clinit方法,从上到下收集静态变量的赋值操作和静态代码块中的代码：
            clinit(){
                System.out.println("静态代码块执行");
                num = 10;
                num = 20;
            }
        5.合并clinit方法中的代码:
            clinit(){
                System.out.println("静态代码块执行");
                num = 20;
            }
 */
public class Test02 {
    static {
        System.out.println("静态代码块执行");
        num = 10;
    }
    public static int num = 20;

    public Test02() {
        System.out.println("构造函数执行");
    }
}
